﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using RCA1._0.DAL_WS;

namespace RCA1._0
{
    public partial class ThemThanhVien : Form
    {
        public ThemThanhVien()
        {
            InitializeComponent();
        }

        private DAL_WSSoapClient wsDAL = new DAL_WSSoapClient();

        private CONGTYDTO congTy = new CONGTYDTO();
        private THANHVIENDTO thanhVien = new THANHVIENDTO();
        private ChucDanhThanhVienDTO chucDanhThanhVien = new ChucDanhThanhVienDTO();
        
        private List<CONGTYDTO> dSachCongTy = null;
        private List<THANHVIENDTO> dSachThanhVien =null;
        private List<ChucDanhThanhVienDTO> dSachChucDanhThanhVien = null;

        private void ThemThanhVien_Load(object sender, EventArgs e)
        {

            ////Lấy danh sách tên công ty

            dSachCongTy = new List<CONGTYDTO>(wsDAL.GetDanhSachCongTy());
            dSachChucDanhThanhVien = new List<ChucDanhThanhVienDTO>(wsDAL.GetDanhSachChucDanhThanhVien());

            //Thể hiện danh sách tên công ty ra Bảng Danh sách thành viên
            //dtvcmbIDCongTy.DataSource = DsCty;
            //dtvcmbIDCongTy.DisplayMember = "TenCongTy";
            //dtvcmbIDCongTy.ValueMember = "IDCongTy";

            //Thể hiện danh sách tên công ty ra bảng chọn danh sách tên công ty
            cbbTenCongTy.DataSource = dSachCongTy;
            cbbTenCongTy.DisplayMember = "TenCongTy";
            cbbTenCongTy.ValueMember = "IDCongTy";

            //Thể hiện danh sách loại chức danh ra bảng chọn danh sách loại chức danh
            cbbChucDanh.DataSource = dSachChucDanhThanhVien;
            cbbChucDanh.DisplayMember = "TenChucDanhThanhVien";
            cbbChucDanh.ValueMember = "IDChucDanhThanhVien";

            //Thể hiện danh sách thành viên
            //dtgvDSThanhVien.DataSource = DsThvien;                       
            TheHienDanhSachThanhVien();

        }

        void TheHienDanhSachThanhVien()
        {
            //Lấy danh sách thành viên
            dSachThanhVien = new List<THANHVIENDTO>(wsDAL.GetDanhSachThanhVien());
            dtgvDSThanhVien.DataSource = dSachThanhVien;
        }


        #region "Kiểm tra - thêm"
        private string kiemTra()
        {
            string error = "";
            bool hopLe = true;
            hopLe = this.txtTenThanhVien.Text != "";
            if (!hopLe)
            {
                error += "Bạn phải nhập tên thành viên .\n ";
            }
            hopLe = this.txtTenThanhVienInHoa.Text != "";
            if (!hopLe)
            {
                error += "Phải nhập tên thành viên viết hoa.\n ";
            }
            hopLe = this.txtQuocTich.Text != "";
            if (!hopLe)
            {
                error += "Bạn chưa nhập quốc tịch .\n ";
            }
            hopLe = this.txtDanToc.Text != "";
            if (!hopLe)
            {
                error += "Bạn chưa nhập dân tộc .\n ";
            }
            hopLe = this.txtDiaChiThuongTru.Text != "";
            if (!hopLe)
            {
                error += "Địa chỉ thường trú không được để trống .\n ";
            }
            hopLe = this.txtNoiOHienTai.Text != "";
            if (!hopLe)
            {
                error += " Bạn chưa nhập nơi ở hiện tại .\n ";
            }
            
            hopLe = this.txtDienThoai.Text != "";
            if (!hopLe)
            {
                error += " Bạn chưa nhập điện thoại .\n ";
            }

            hopLe = this.txtSoCMND.Text != "";
            if (!hopLe)
            {
                error += "Số CMND hay giấy phép kinh doanh không được để trống .\n ";
            }
            hopLe = this.txtNoiCapCMND.Text != "";
            if (!hopLe)
            {
                error += "Cần nhập nơi cấp CMND hay giấy phép kinh doanh .\n ";
            }
            hopLe = this.txtTongGiaTriGopVon.Text != "";
            if (!hopLe)
            {
                error += "Nhập tổng giá trị góp vốn .\n ";
            }
            hopLe = this.txtSoHuuVon.Text != "";
            if (!hopLe)
            {
                error += "Nhập sở hữu vốn .\n ";
            }
            hopLe = this.txtPhanTramGopVon.Text != "";
            if (!hopLe)
            {
                error += "Nhập phầm trăm góp vốn .\n ";
            }

            return error;
        }

        private void btnThemThanhVien_Click(object sender, EventArgs e)
        {
            string error = kiemTra();
            if (error == "")
            {

                string tenthanhvien = this.txtTenThanhVien.Text;
                string tenthanhvieninhoa = this.txtTenThanhVienInHoa.Text;
                DateTime ntns = Convert.ToDateTime(this.dtpNgaySinh.Text.ToString());
                string gioitinh = "";
                if (this.rdbNam.Checked == true)
                {
                    gioitinh = "Nam";
                }
                else
                {
                    gioitinh = "Nữ";
                }
                string quoctich = this.txtQuocTich.Text;
                string dantoc = this.txtDanToc.Text;                
                string diachithuongtru = this.txtDiaChiThuongTru.Text;
                string noiohientai = this.txtNoiOHienTai.Text;
                string cmnd = this.txtSoCMND.Text;
                string noicapcmnd = this.txtNoiCapCMND.Text;
                DateTime ngaycapcmnd = Convert.ToDateTime(this.dtpNgayCapCMND.Text.ToString());
                double tonggiatrigv = double.Parse(this.txtTongGiaTriGopVon.Text);
                string sohuuvon = this.txtSoHuuVon.Text;
                double phantramgv = double.Parse(this.txtPhanTramGopVon.Text);
                DateTime thoidiemgv = Convert.ToDateTime(this.dtpThoiDiemGV.Text.ToString());

                //string chucdanh = this.txtChucDanh.Text;
                string dienthoai = this.txtDienThoai.Text;
                string email = this.txtEmail.Text;
                string website = this.txtWebsite.Text;

                // int email = int.Parse(this.txtEmail.Text.ToString());          

                chucDanhThanhVien = new ChucDanhThanhVienDTO();
                chucDanhThanhVien = (ChucDanhThanhVienDTO)this.cbbChucDanh.SelectedItem;
                int machucdanhtv = chucDanhThanhVien.IDChucDanhThanhVien;

                congTy = new CONGTYDTO();
                congTy = (CONGTYDTO)this.cbbTenCongTy.SelectedItem;
                int macty = congTy.IDCongTy;

                thanhVien = new THANHVIENDTO();
                thanhVien.TenThanhVienThuong = tenthanhvien;
                thanhVien.TenThanhVienInHoa = tenthanhvieninhoa;
                thanhVien.NTNS = ntns;
                thanhVien.GioiTinh = gioitinh;
                thanhVien.QuocTich = quoctich;
                thanhVien.DanToc = dantoc;
                thanhVien.DiaChiThuongTru = diachithuongtru;
                thanhVien.NoiOHienTai = noiohientai;
                thanhVien.SoCMND = cmnd;
                thanhVien.NoiCapCMND = noicapcmnd;
                thanhVien.NgayCapCMND = ngaycapcmnd;
                thanhVien.TongGiaTriGopVon = tonggiatrigv;
                thanhVien.SoHuuVon = sohuuvon;
                thanhVien.PhanTramGopVon = phantramgv;
                thanhVien.ThoiDiemGopVon = thoidiemgv;
                thanhVien.MaCongTy = macty;
                thanhVien.MaChucDanhThanhVien = machucdanhtv;
                thanhVien.DienThoai = dienthoai;
                thanhVien.Email = email;
                thanhVien.Website = website;

                wsDAL.ThemThanhVien(thanhVien);
                MessageBox.Show("Thêm thành viên thành công !", "Thông Báo !", MessageBoxButtons.OK, MessageBoxIcon.Information);
                //load lại danh sách thành viên                 
                TheHienDanhSachThanhVien();
            }
            else
            {
                MessageBox.Show(error, "Báo lỗi !", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        #endregion


        private void btnLamLai_Click(object sender, EventArgs e)
        {
            this.txtTenThanhVien.Text = "";
            this.txtTenThanhVienInHoa.Text = "";
            this.txtQuocTich.Text = "";
            this.txtDanToc.Text = "";
            this.txtDiaChiThuongTru.Text = "";
            this.txtNoiOHienTai.Text = "";
            this.txtSoCMND.Text = "";
            this.txtNoiCapCMND.Text = "";
            this.txtTongGiaTriGopVon.Text = "";
            this.txtSoHuuVon.Text = "";
            this.txtPhanTramGopVon.Text = "";
            this.txtDienThoai.Text = "";
            this.txtEmail.Text = "";
            this.txtWebsite.Text = "";
        }

        public static int xetThayDoi_ThanhVien = 0;
        //Sự kiện Double click vào một ô trong Bảng Danh sách thành viên       
        private void dtgvDSThanhVien_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            //Lấy đối tượng thành viên từ Danh sách thành viên theo vị trí từ bảng danh sách thành viên
            THANHVIENDTO thanhVien = (THANHVIENDTO)dSachThanhVien[e.RowIndex];
            ThanhVien frm = new ThanhVien();
            frm.thanhVien = thanhVien;
            frm.ShowDialog();
            TheHienDanhSachThanhVien();

            //IDThanhVien_frmThanhVien = int.Parse(dtgvDSThanhVien.Rows[e.RowIndex].Cells["IDThanhVien"].Value.ToString());

            //ThanhVien frm = new ThanhVien();
            //frm.ShowDialog();
        }


        #region "Sự kiện Gõ từ bàn phím - Kiểm tra ký tự nhập vào từ bàn phím"
        /*
        * Sự kiện Gõ từ bàn phím
        * Kiểm tra ký tự nhập vào từ bàn phím
        */
        
        private void txtTongGiaTriGopVon_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Nếu là ký tự chữ và không phải là ký tự backspace thì khóa phím
            if (char.IsLetter(e.KeyChar) == true && e.KeyChar != (char)127)
                e.Handled = true;
        }

        private void txtPhanTramGopVon_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Nếu là ký tự chữ và không phải là ký tự backspace thì khóa phím
            if (char.IsLetter(e.KeyChar) == true && e.KeyChar != (char)127)
                e.Handled = true;
        }

        private void txtSoCMND_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Nếu là ký tự chữ và không phải là ký tự backspace thì khóa phím
            if (char.IsLetter(e.KeyChar) == true && e.KeyChar != (char)127)
                e.Handled = true;
        }
        
        private void txtDienThoai_KeyPress(object sender, KeyPressEventArgs e)
        {
            //Nếu là ký tự chữ và không phải là ký tự backspace thì khóa phím
            if (char.IsLetter(e.KeyChar) == true && e.KeyChar != (char)127)
                e.Handled = true;
        }

       #endregion


        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}
